Note: When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher.
                                            Some full text articles may not yet be available without a charge during the embargo (administrative interval).
                                        
                                        
                                        
                                            
                                                
                                             What is a DOI Number?
                                        
                                    
                                
Some links on this page may take you to non-federal websites. Their policies may differ from this site.
- 
            We present ASM Visualizer, a tool that is designed to help students learn assembly programming, aiding in their understanding of how assembly instructions are executed and the relationship between assembly and equivalent high-level language code. Our tool allows a user to step both forward and backward through the execution of an assembly program, one instruction at a time, seeing how instruc- tions use and modify values in stack memory and CPU registers. ASM Visualizer presents three user-interface modes, supporting different stages of learning assembly programming. Beginners can step through basic arithmetic instructions, whereas more advanced learners can trace through function call/return sequences, stack frame manipulation, or entire assembly programs. We present our experiences using ASM Visualizer in introductory-level courses at our two institutions, and we discuss other ways in which our tool could be used by educators in both introductory and advanced CS courses. Results from a preliminary assessment of students using our tool show that students gain confidence in their understanding of different aspects of assembly programming. We feel that the visual interface to assembly code execution that ASM Visualizer provides is key to helping students understand assembly.more » « lessFree, publicly-accessible full text available February 12, 2026
- 
            It has been a decade since the ACM/IEEE CS2013 Curriculum guidelines recommended that all CS students learn about parallel and distributed computing (PDC). But few text- books for “core” CS courses–especially first-year courses–include coverage of PDC topics. To fill this gap, we have written free, online, beginner- and intermediate-level PDC textbooks, containing interactive C/C++ OpenMP, MPI, mpi4py, CUDA, and OpenACC code examples that students can run and modify directly in the browser. The books address a serious challenge to teaching PDC concepts, namely, easy access to the powerful hardware needed for observing patterns and scalability. This paper describes the content of these textbooks and the underlying infrastructure that make them possible. We believe the described textbooks fill a critical gap in PDC education and will be very useful for the community.more » « less
- 
            Worked examples are an educational tool widely used in introductory computer science classes, primarily for programming and code-tracing concepts. Prior research supports the use of worked examples as a scaffolding mechanism to help students build a solid foundation before tackling problems on their own. Whether breaking down the intricacies of code or explaining abstract theoretical concepts, worked examples offer a structured approach that nurtures a deeper understanding during self-study. This study explores how peer-created worked examples, shown through detailed step-by-step videos, aid student learning in an intermediate-level computer science course, namely computer systems. Our results suggest that worked-example videos are a useful study aid for intermediate computer science courses, such as computer systems. Students who watched the worked-example videos found them to be very helpful, and ranked them as the top study aid for succeeding on quizzes. Additionally, students with access to worked-example videos performed moderately better on quizzes compared to students without worked-example videos. Our results and experiences also suggest that worked-example videos are beneficial to the students who created them as well as their peers who use them.more » « less
- 
            This paper describes the computer architecture content in Dive into Systems, our free, online textbook that introduces a broad range of computer systems topics. Dive into Systems assumes only a CS1 background of the reader, and includes numerous examples and illustrations to foster a reader’s understanding of its content. Our textbook is designed to be used as a primary textbook for a range of courses that introduce computer systems and computer architecture topics. It also serves as a supplementary text in upper-level undergraduate and graduate level courses to provide background material on computer architecture, systems, and parallel computing. In addition to presenting the details about our book’s coverage of computer architecture topics, we also discuss the overarching themes of our textbook and our motivations for writing a free online textbook to introduce computer systems topics. Our book is currently used by more than 45 institutions in a wide range of courses, including undergraduate computer architecture courses.more » « less
- 
            This paper introduces an open-source BinaryGame that assists students learning reverse engineering. The game consists of ten levels that increase in difficulty, help pages on GDB, and supports three flavors of assembly language. Work on the BinaryGame is ongoing; for our initial study, we used the BinaryGame to introduce students in a computer systems \& organization course to Arm assembly. These students had prior knowledge of x64 assembly, but no prior knowledge of Arm assembly; our goal was to boost our students' confidence in learning unfamiliar assembly languages. Our results suggest that the BinaryGame increased student confidence in their a.) general reverse engineering abilities; b.) ability to reverse engineer programs in an unfamiliar assembly language, and c.) ability to reverse programs in Arm assembly. We believe that the BinaryGame can help students build their reverse engineering skillset.more » « less
- 
            null (Ed.)The 2019 ABET computer science criteria requires that all computing students learn parallel and distributed computing (PDC) as undergraduates, and CS2013 recommends at least fifteen hours of PDC in the undergraduate curriculum. Consequently, many educators look for easy ways to integrate PDC into courses at their institutions. This hands-on workshop introduces Message Passing Interface (MPI) basics in C/C++ and Python using clusters of Raspberry Pis. The Message Passing Interface (MPI) is a multi-language, platform independent, industry-standard library for parallel and distributed computing. Raspberry Pis are an inexpensive and engaging hardware platform for studying PDC as early as the first course. Participants will experience how to teach distributed computing essentials with MPI by means of reusable, effective "parallel patterns", including single program multiple data (SPMD) execution, send-receive message passing, the master-worker pattern, parallel loop patterns, and other common patterns, plus longer "exemplar" programs that use MPI to solve significant applied problems. The workshop includes: (i) personal experience with the Raspberry Pi (clusters provided for workshop use); (ii) assembly of Beowulf clusters of Raspberry Pis quickly in the classroom; (iii) self-paced hands-on experimentation with the working MPI programs; and (iv) a discussion of how these may be used to achieve the goals of CS2013 and ABET. No prior experience with MPI, PDC, or the Raspberry Pi is expected. All materials from this workshop will be freely available from CSinParallel.org; participants should bring a laptop to access these materials.more » « less
- 
            null (Ed.)Teaching parallel and distributed computing (PDC) concepts is an ongoing and pressing concern for many undergraduate educators. The ACM/IEEE CS Joint Task Force on Computing Curricula (CS2013) recommends 15 hours of PDC education in the undergraduate curriculum. Most recently, the 2019 ABET Criteria for Accrediting Computer Science requires coverage of PDC topics. For faculty who are unfamiliar with PDC, the prospect of incorporating parallel computing into their courses can seem very daunting. For example, should PDC concepts be covered in a single required course (perhaps computer systems) or be scattered throughout different courses in the undergraduate curriculum? What languages are the best/easiest for students to learn PDC? How much revision is truly needed? This Birds of a Feather session provides a platform for computing educators to discuss the common challenges they face when attempting to incorporate PDC into their curricula and share potential solutions. Chiefly, the organizers are interested in identifying "gap areas" that hinder a faculty member's ability to integrate PDC into their undergraduate courses. The multiple viewpoints and expertise provided by the BOF leaders should lead to lively discourse and enable experienced faculty to share their strategies with those beginning to add PDC across their curricula. We anticipate that this session will be of interest to all CS faculty looking to integrate PDC into their courses and curricula.more » « less
 An official website of the United States government
An official website of the United States government 
				
			 
					 
					
 
                                     Full Text Available
                                                Full Text Available